PREFIX=../..

INCDIR = $(PREFIX)/include
LIBDIR = $(PREFIX)/lib
BINDIR = $(PREFIX)/bin

#le compilateur
CC= g++

#les flags de compilation
CFLAGS= -g -Wall -Werror

#les flags du preprocesseur 
CPPFLAGS=

#les flags de l'editeur de liens 
LDFLAGS= 

#les librairies utilisees 
LDLIBS= -lm

#La librairie a creer
LIBFILENAME= libarithmetique.a

#Les fichiers d'entete de la librairie a creer
INSTHEADERS= .h

#Les fichiers objets Ã  inserer das la bibliotheque
LIBOBJS= .o


#Le nom du fichier executable servant a valider le module
OUTFILE= Benchmark GraphTest

#les fichiers objets a generer 
#OBJS= $(LIBOBJS) 
OBJS= Graph.o randomgraph.o RandomSmallCover.o randombiparti.o randomtree.o Minisat.o FluxGraph.o optibiparti.o 2ApprocheVoisinage.o glouton.o optitree.o biparti2approch.o IO.o 2ApprocheArbres.o

#les dependances 
all: $(OUTFILE)

GraphTest: $(OBJS) GraphTest.o

Benchmark: $(OBJS) Benchmark.o

#$(OUTFILE): $(OBJS) 
        # regle implicite utilisee par make pour l'edition de liens
        # $(CC) $(LDFLAGS) $(OBJS) $(LDLIBS) -o $@

#les dependances des fichiers objets

GraphTest.o : GraphTest.cpp

glouton.o: glouton.cpp algo.h

2ApprocheVoisinage.o: 2ApprocheVoisinage.cpp algo.h

2ApprocheArbres.o: 2ApprocheArbres.cpp algo.h

biparti2approch.o: biparti2approch.cpp algo.h

optitree.o: optitree.cpp algo.h

optibiparti.o: optibiparti.cpp algo.h

.o: .cpp .h
        # regle implicite utilisee par make pour la compilation 
        # $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@

install:  $(OUTFILE)
	./$(OUTFILE)
	test -d $(INCDIR) || mkdir $(INCDIR)
	test -d $(LIBDIR) || mkdir $(LIBDIR)
	cp $(INSTHEADERS) $(INCDIR)
	ar -rs  $(LIBDIR)/$(LIBFILENAME)  $(LIBOBJS) 

clean :
	rm -f  $(OUTFILE) $(OBJS)

mrproper: clean
	rm -f   $(LIBDIR)/$(LIBFILENAME)  
	cd $(INCDIR); rm - f $(INSTHEADERS)
	rm -f *~